package cn.com.woxitech.dev.common;

import java.util.HashMap;
import java.util.Set;

import org.springframework.boot.SpringApplication;

import com.cloopen.rest.sdk.CCPRestSmsSDK;

import cn.com.woxitech.dev.Application;

public class SMSCodeUtils {

	private static CCPRestSmsSDK init() {
		// 初始化SDK
		CCPRestSmsSDK restAPI = new CCPRestSmsSDK();

		// ******************************注释*********************************************
		// *初始化服务器地址和端口 *
		// *沙盒环境（用于应用开发调试）：restAPI.init("sandboxapp.cloopen.com", "8883");*
		// *生产环境（用户应用上线使用）：restAPI.init("app.cloopen.com", "8883"); *
		// *******************************************************************************
		// restAPI.init("sandboxapp.cloopen.com", "8883");
		restAPI.init("app.cloopen.com", "8883");

		// ******************************注释*********************************************
		// *初始化主帐号和主帐号令牌,对应官网开发者主账号下的ACCOUNT SID和AUTH TOKEN *
		// *ACOUNT SID和AUTH TOKEN在登陆官网后，在“应用-管理控制台”中查看开发者主账号获取*
		// *参数顺序：第一个参数是ACOUNT SID，第二个参数是AUTH TOKEN。 *
		// *******************************************************************************
		restAPI.setAccount("8a48b5514fba2f87014fbb562a0705b5", "d1e23b43b7f24314a784c56d3907821d");

		// ******************************注释*********************************************
		// *初始化应用ID *
		// *测试开发可使用“测试Demo”的APP ID，正式上线需要使用自己创建的应用的App ID *
		// *应用ID的获取：登陆官网，在“应用-应用列表”，点击应用名称，看应用详情获取APP ID*
		// *******************************************************************************
		// restAPI.setAppId("aaf98f894fba2cb2014fbb56778f024b");
		// restAPI.setAppId("aaf98f894fba2cb2014fbb64ac8c0268");
		restAPI.setAppId("8a216da859b4ceed015a0d880a760aab");

		return restAPI;
	}

	public static boolean sendSMSVerifyCode(String phoneNum, String code) {
		// TODO Auto-generated method stub
		boolean isSuc = true;

		HashMap<String, Object> result = null;

		// 初始化SDK
		CCPRestSmsSDK restAPI = init();

		// **************************************举例说明***********************************************************************
		// *假设您用测试Demo的APP ID，则需使用默认模板ID 1，发送手机号是13800000000，传入参数为6532和5，则调用方式为
		// *
		// *result = restAPI.sendTemplateSMS("13800000000","1" ,new
		// String[]{"6532","5"}); *
		// *则13800000000手机号收到的短信内容是：【云通讯】您使用的是云通讯短信模板，您的验证码是6532，请于5分钟内正确输入 *
		// *********************************************************************************************************************
		result = restAPI.sendTemplateSMS(phoneNum, "152074", new String[] { code, "5" });

		System.out.println("SDKTestGetSubAccounts result=" + result);
		if ("000000".equals(result.get("statusCode"))) {

			// 正常返回输出data包体信息（map）
			HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
			Set<String> keySet = data.keySet();
			for (String key : keySet) {
				Object object = data.get(key);
				System.out.println(key + " = " + object);
			}
		} else {
			// 异常返回输出错误码和错误信息
			System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
			isSuc = false;
		}

		return isSuc;
	}

	public static boolean sendPPTDoneNotify(String phoneNum, String pptname, String count) {
		// TODO Auto-generated method stub
		boolean isSuc = true;

		HashMap<String, Object> result = null;

		// 初始化SDK
		CCPRestSmsSDK restAPI = init();

		// **************************************举例说明***********************************************************************
		// *假设您用测试Demo的APP ID，则需使用默认模板ID 1，发送手机号是13800000000，传入参数为6532和5，则调用方式为
		// *
		// *result = restAPI.sendTemplateSMS("13800000000","1" ,new
		// String[]{"6532","5"}); *
		// *则13800000000手机号收到的短信内容是：【云通讯】您使用的是云通讯短信模板，您的验证码是6532，请于5分钟内正确输入 *
		// *********************************************************************************************************************
		result = restAPI.sendTemplateSMS(phoneNum, "160722", new String[] { pptname, count });

		System.out.println("SDKTestGetSubAccounts result=" + result);
		if ("000000".equals(result.get("statusCode"))) {

			// 正常返回输出data包体信息（map）
			HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
			Set<String> keySet = data.keySet();
			for (String key : keySet) {
				Object object = data.get(key);
				System.out.println(key + " = " + object);
			}
		} else {
			// 异常返回输出错误码和错误信息
			System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
			isSuc = false;
		}

		return isSuc;
	}

	public static boolean sendAdminUserProve(String phoneNum, String name) {
		// TODO Auto-generated method stub
		boolean isSuc = true;

		HashMap<String, Object> result = null;

		// 初始化SDK
		CCPRestSmsSDK restAPI = init();

		result = restAPI.sendTemplateSMS(phoneNum, "165045", new String[] { name });

		System.out.println("SDKTestGetSubAccounts result=" + result);
		if ("000000".equals(result.get("statusCode"))) {

			// 正常返回输出data包体信息（map）
			HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
			Set<String> keySet = data.keySet();
			for (String key : keySet) {
				Object object = data.get(key);
				System.out.println(key + " = " + object);
			}
		} else {
			// 异常返回输出错误码和错误信息
			System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
			isSuc = false;
		}

		return isSuc;
	}
	
	public static boolean sendAdminUserRevoke(String phoneNum, String name) {
		// TODO Auto-generated method stub
		boolean isSuc = true;

		HashMap<String, Object> result = null;

		// 初始化SDK
		CCPRestSmsSDK restAPI = init();

		result = restAPI.sendTemplateSMS(phoneNum, "165046", new String[] { name });

		System.out.println("SDKTestGetSubAccounts result=" + result);
		if ("000000".equals(result.get("statusCode"))) {

			// 正常返回输出data包体信息（map）
			HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
			Set<String> keySet = data.keySet();
			for (String key : keySet) {
				Object object = data.get(key);
				System.out.println(key + " = " + object);
			}
		} else {
			// 异常返回输出错误码和错误信息
			System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
			isSuc = false;
		}

		return isSuc;
	}

	// public static void main(String[] args) {
	// // TODO Auto-generated method stub
	// SMSCodeUtils.sendSMSVerifyCode("18010126615", "1234");
	// }
	//

}
